package com.wang.jmonkey.modules.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.wang.jmonkey.modules.system.model.dto.SystemDictTreeDto;
import com.wang.jmonkey.modules.system.model.entity.SystemDictEntity;
import com.wang.jmonkey.modules.system.model.query.SystemDictQuery;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * 字典表(SystemDict)表数据库访问层
 *
 * @author HeJiawang
 * @since 2021-05-21 21:44:50
 */
public interface SystemDictMapper extends BaseMapper<SystemDictEntity> {

    /**
     * 获取字典树形结构数据
     * @param query 查询条件
     * @return 字典数据
     */
    List<SystemDictTreeDto> listTree(SystemDictQuery query);

    /**
     * 获取子集字典信息
     * @param parentId 上级字典id
     * @return 子集字典信息
     */
    List<SystemDictEntity> listChildren(@Param("parentId") Serializable parentId);

    /**
     * 校验字典键值是否重复 </br>
     * 在同字典信息下（parentId）
     * @param dict 字典信息
     * @return true 重复
     */
    int checkValue(SystemDictEntity dict);

    /**
     * 获取子集字典信息
     * @param parentValue 父级字典键值
     * @return 字典信息集合
     */
    List<SystemDictEntity> listChildrenByParentValue(@Param("parentValue") String parentValue);
}
